# -*- coding: utf-8 -*-
"""
@文件    :   homes_散点直方密度.py
@时间    :   2022/05/25 18:12:53
@作者    :   YTNetMan
@版本    :   1.0
@邮箱    :   ytnetman@163.com
@版权    :   (C)Copyright 2022-2025
@分类    :   办公自动化
@功能    :   绘制散点图：从杂乱的数据找guilv
            scatter(x='', y='')
            绘制直方图：直方图和柱状图是不同的，直方图只需要一组数据，横轴是区间量，柱状图都是固定值
            hist(bins=) bin值用来增加和减少区间的数量
            绘制密度图：
            kde()
            
            附加内容：分析比较数据间的相关性
            corr()
            配置pd能同时显示的最大列数
            pd.options.display.max_columns
               
"""

import matplotlib.pyplot as plt
import pandas as pd

#配置pd能同时显示的最大列数
pd.options.display.max_columns = 666
homes = pd.read_excel('./doc/home_data.xlsx')
print(homes.head())

#附加内容：分析比较数据间的相关性
print(homes.corr())
''''
结果如下：
                     id     price  bedrooms  bathrooms  sqft_living  \
id             1.000000 -0.016762  0.001286   0.005160    -0.012258
price         -0.016762  1.000000  0.308350   0.525138     0.702035
bedrooms       0.001286  0.308350  1.000000   0.515884     0.576671
bathrooms      0.005160  0.525138  0.515884   1.000000     0.754665
sqft_living   -0.012258  0.702035  0.576671   0.754665     1.000000
sqft_basement -0.005151  0.323816  0.303093   0.283770     0.435043
sqft_lot      -0.132109  0.089661  0.031703   0.087740     0.172826
floors         0.018525  0.256794  0.175429   0.500653     0.353949
yr_built       0.021380  0.054012  0.154178   0.506019     0.318049

               sqft_basement  sqft_lot    floors  yr_built
id                 -0.005151 -0.132109  0.018525  0.021380
price               0.323816  0.089661  0.256794  0.054012
bedrooms            0.303093  0.031703  0.175429  0.154178
bathrooms           0.283770  0.087740  0.500653  0.506019
sqft_living         0.435043  0.172826  0.353949  0.318049
sqft_basement       1.000000  0.015286 -0.245705 -0.133124
sqft_lot            0.015286  1.000000 -0.005201  0.053080
floors             -0.245705 -0.005201  1.000000  0.489319
yr_built           -0.133124  0.053080  0.489319  1.000000
从中发现 面积和价格的相关性较大为0.7
'''

# #绘制散点图,需要两组数据
# homes.plot.scatter(x='sqft_living', y='price')
# plt.title('Living_Price', fontsize=16, fontweight='bold')
# #对x轴平铺刻度（range 区间值 1000000是步长）
# plt.yticks(range(0, max(homes.price), 1000000), fontsize=8)
# plt.show()

# #绘制直方图，只需要一组数据,横轴表示，y轴是统计值代表分布的数量
# #bins=100 分布区间 bins也成为桶
# homes.sqft_living.plot.hist(bins=100)
# plt.title('sqft_living', fontsize=16, fontweight='bold')
# plt.xticks(range(0, max(homes.sqft_living), 1000), fontsize=8)
# plt.xlabel('sqft_living',fontsize=8)
# plt.show()

#绘制密度图，只需要一组数据，来分析可能性
homes.sqft_living.plot.kde()
plt.xticks(range(0, max(homes.sqft_living), 500),fontsize=8,rotation=90)
plt.xlabel('sqft_living',fontsize=8)
plt.tight_layout()
plt.show()

